#pragma once
#include<stdlib.h>
#include<stdio.h>
#include<assert.h>
#include<stdbool.h>
typedef int LTDataType;
typedef struct ListNode
{
	LTDataType data;
	struct ListNode* prev;
	struct ListNode* next;
}ListNode;

ListNode* ListInit();

ListNode* BuyListNode(LTDataType x);

void ListPushBack(ListNode* phead, LTDataType x);

void ListPushFront(ListNode* phead, LTDataType x);

void ListNodePopBack(ListNode* phead);

void ListNodePopFront(ListNode* phead);

bool ListNodeEmpty(ListNode* phead);

size_t ListNodeSize(ListNode* phead);

void ListNodeInsert(ListNode* pos, LTDataType x);

ListNode* ListNodeFInd(ListNode* phead, LTDataType x);

void ListNodeErase(ListNode* pos);

void ListNodeDestory(ListNode* phead);